================================================================================
Marway RCM Release Notes : 500505-2.5.12-A
================================================================================

Support:

- EMAIL: support@marway.com
- PHONE: 800-462-7929
- WEB:   http://www.marway.com
         http://www.marway.com/software

Your product may include a model-specific link in the Web UI page footer.
This link is also available from the `getSystem link` CLI command.

Contents:
  Updates and Fixes
  Known Issues and Limitations
  Marway RCM Files :: /Logs
  Marway RCM Files :: /Settings
  Marway RCM Files :: /System
  Marway RCM Files :: /Web



================================================================================
Updates and Fixes
================================================================================

--------------------------------------------------------------------------------
Updates and Fixes in 2.5.12

o  Added the ability to disable logging of logins with RESTful API session in
   order to reduce log noise. Obviously this reduces audit tracking of access to
   the PDU, but automated processes via REST can flood the log. End users can
   now choose between those two options. Note however that failed login attempts
   with incorrect account names and/or incorrect passwords will still be logged.

o  Fixed a few small memory leaks which would affect long automated runs of the
   RESTful API by refusing connections until the system was restarted.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.11

o  Changed the message displayed after rom.bin and image.bin are uploaded. The
   original message "Firmware updated, quit the session to restart." gave the
   wrong impression that it was necessary to restart after each uploaded file.
   The message now shows "Firmware updated. Proceed to the next step in the
   update procedure." as restarting is not always the next step.

o  In the absence of SNTP, the system used to wait for a command to set a time
   for the RTC. It will now detect that a time has not been set, and sets an
   arbitrary time of "2015-01-01 6:00:00" so that differential times can be
   detected for setpoints, user lockout control, and other uses.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.10

o  Updated TCP configuration to prevent scenario where the system was set to use
   DHCP, but would wait an infinite duration of time if there was no DHCP address
   to be acquired (e.g. no cable, or no DHCP server on the LAN). The system now
   completes the startup of the RCM application even if there is no DHCP
   connection. (The system has always completed a startup if the system was
   configured with a static address, and there was no connection.)


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.9

o  Corrected a problem in SNMP where current-only monitored systems could report
   incorrect data in the power device and data tables. This did not affect
   systems which had no power monitoring, or systems with full power monitoring
   (V,A, W, etc.). It affects only those with current-only monitoring (i.e. would
   have Phase Amps data only).


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.8

o  Corrected a problem where under some circumstances the Environment Scan Ports
   function could lock up (resulting in a software restart).


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.7

o  Corrected a problem where the Network web UI page would not save the
   HTTPS Certificate Type selection when CA-Signed was chosen. Using the
   CLI command `#> setHttp cert_type ca_signed` was a suitable work around.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.6

o  Corrected a problem where the RESTful API command to cycle an outlet switch
   was incorrectly expecting "last known" instead of "cycle" as the new_value
   string.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.5

o  Corrected a problem where command `#> getPhase rated_amps` could report that
   the attribute was not supported when it was.

o  Corrected a problem where pressing a keypad button during startup before
   the default power data is displayed would freeze the keypad even after
   startup (button pushes did nothing). This required a power cycle to correct.
   As of 2.5.5, button pushes no longer freeze the keypad, but pressing one
   of the menu buttons will delay the auto scroll. If that happens, use the
   menu buttons to navigate to AUTO SCROL and press the Device > (next) button
   to start the default auto scroll.

o  Added a work around for an error in the SNMP mPowerSwitchStatusChange trap.
   When an outlet switch is changed via the web, serial, telnet, ssh, or REST
   interfaces the mPowerSwitchStatusChange trap correctly reports the new
   state of the switch. However, when the outlet switch is changed using an
   SNMP SET, the mPowerSwitchStatusChange trap does not report the switch
   state correctly. Instead of reporting the new value, it repoorts the
   previous value. Unfortunately, as of this writing (2023-12-06), this
   cannot be corrected. There is also no way to discern from the trap, which
   method was used to switch the outlet.

   As a workaround, starting with 2.5.5, an outlet state change invoked by SNMP
   SET emits a mChassisEventFirmwareConfigChange trap in addition to the standard
   mPowerSwitchStatusChange trap. mChassisEventFirmwareConfigChange includes a
   description field with something like "Power Outlet 1 was set to OFF from SNMP
   (the preceding mPowerSwitchStatusChange states the switch status incorrectly)"
   where OFF is the correct new state of the outlet switch. The second trap is
   NOT sent when the switch is changed by any of the other user interfaces.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.4

o Corrected a problem where, even though configured to do so, an SNMP trap would
  not be generated for an outlet object update (switch state, or delay settings)
  which was triggered specifically by an SNMP SET. (It was triggered when changes
  were made by other interfaces.)

o Corrected a problem where SNMP sysContact and sysLocation would not start
  with the correct data.

o Corrected a problem where, even though configured to do so, an SNMP trap would
  not be generated for sysName, sysContact, or sysLocation which was triggered
  specifically by an SNMP SET. (It was triggered when changes were made by other
  interfaces.)

o Updated SNMP trap logic to disable v1 traps, send v3 traps only if a USM user
  is defined (interpreted to mean the operator prefers v3), or to sent v2 traps
  only if there is no USM user, but the v2 read-only community string is defined.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.3

o Corrected problem where pressing the Devices Next keypad button while AUTO SCRL
  was the visible menu would cause a blank display until the unit was rebooted.

o Added internal data checking to aid in manufacturing.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.2

o Removed erroneous listing of `quit` as a command from the help command list.

o Corrected a problem which could fail to load the SNMP Trap IP address.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.1

o Corrected problem which could prevent power data from being available on SNMP.

o Corrected HTTP CLI commands which incorrectly used the alias "port" to set the
  HTTPS port instead of the HTTP port as documented.

o Corrected error which did not import SMTP Auth Method.

o Corrected a problem where viewing the Outlet SW state of an outlet on the
  display which did not have switching or power data and pressing the Next or
  Prev Value button on the keypad would cause the display to go blank until the
  firmware was restarted.

o Corrected problem which could disable power data when using 2.5.0 to update
  a previous version.


--------------------------------------------------------------------------------
Updates and Fixes in 2.5.0

o Added support for a new "EPO2" option for customized systems.

o Added IPV4 item to the display menu. The static IPv4 address settings are
  displayed as "Devices" on the display named IP for IpAddr, MK for Subnet Mask,
  and GW for Gateway (aka Router) values. Each octet is displayed by scrolling
  with the Values buttons, and are labeled A, B, C, D for the four parts.
  NOTE: as of this version, this does not show DHCP configured values. Even
  when DHCP is enabled, this will show the static IP configuration.

o Added user preference to choose what is displayed during Auto Scroll of the
  the display (when one is included). On models with suitable hardware, the
  options include Phase Amps, Phase Volts, and Outlet Switch state.

o Added user preference to choose the Auto Scroll rate on the display from
  2, 3, or 4 seconds.

o Added user preference to choose from five different levels of display intensity
  (brightness) from 1 through 5 (lowest to brightest).

o Updated the messages on the display to show when files are being written
  during settings and log exports.

o Added logging of outlet switching events during software startup. This makes
  it more explicit exactly which outlets were switched on at startup.

o Fixed bug where system Location was not being included in log exports. Note
  that some log messages are written before Location can be known (the internal
  System settings are not yet readable at the time of the logging).

o Removed non-useful reporting of T/H Setpoint status at startup.

o Updated EnvironmentSettings file to indicate when there were no sensors.



--------------------------------------------------------------------------------
Just to clarify, there is no version 2.4


--------------------------------------------------------------------------------
Updates and Fixes in 2.3.6

o Fixed problem where SNMP EngineID was not generating a unique ID.

o Fixed error where the outlet state was reported as OFF for outlets which are
  not controlled with remote switching. Such outlets are actually always on.


--------------------------------------------------------------------------------
Updates and Fixes in 2.3.5

o Fixed a critical bug which could create an endless loop at startup when the
  user settings were exported then imported, and included the SystemSettings.txt
  file.

  NOTE: For systems with 2.3.0 through 2.3.4, the bug can be avoided by not
  importing the SystemSettings.txt file. Exporting is safe, and importing all
  other files is safe.

  Go to http://www.marway.com/docs/rcm-bulletin-235 for documents and firmware
  updates to apply to older PDUs.


--------------------------------------------------------------------------------
Updates and Fixes in 2.3.4

o Added configurability to ignore relay sense to accommodate custom low voltages
  on the relay board.


--------------------------------------------------------------------------------
Updates and Fixes in 2.3.3

o Fixed a bug which could ignore the outlet on delay during startup.

o Fixed a bug which incorrectly showed an AutoOff option in FTP with the
  getNetwork command.


--------------------------------------------------------------------------------
Updates and Fixes in 2.3.2

o Fixed a bug which incorrectly showed the Environment web interface main menu
  item when it did not apply to certain models.

o Include OS updates for new FLASH parts in the SOM.


--------------------------------------------------------------------------------
Updates and Fixes in 2.3.1

o Fixed a bug in NetworkSettings.txt importing which caused HTTP mode to be
  forced to HTTP regardless of the value recorded in the settings file.


--------------------------------------------------------------------------------
Updates and Fixes in 2.3.0

o In NEW units shipped from the factory, the default state of outlets is ON.
  (Prior to this the default was OFF. We've had several requests to have the
  outlets enabled so the PDU is functional when there may no plans/provisions
  to access the software initially. Those who will be doing software setup
  can change the default Startup State to OFF if desired.)

o After a Factory Reset, via Serial, web page, or command line, the default
  Startup State of outlets will be ON.

o Removed IPv6 settings. here has been little interest in using it, and not all
  services were capable of running on IPv6, so it has been removed.

o Added temperature and humidity (T/H) sensor Setpoints and Alerts. These
  behave just like the setpoints and alerts for power objects. Prior versions
  have had sensor data, but not setpoints and alerts.

o Added T/H sensor data, setpoints, and traps to SNMP. Data is presented in the
  SNMP standard table of entPhySensorTable. Setpoints and other Marway-specific
  details are in custom tables. Note that regardless of the PDU's configuration
  for degrees F or C for web and CLI, the SNMP values are always in degrees C.

o Added on-demand CRC check of bootloader and application binaryin FLASH. It's
  viewable in the web System > Firmware Versions panel, via CLI using the
  command `getSystem crc`, and via RESTful API via `GET /system/1/crc`.

o Added new CLI command syntax for outlet switching:
  #> setOutlet 1 on|off|cycle

o Added new aliases to many CLI command parameter names.

o Updated SNMP entPhysicalTable.entPhysicalContainedIn to more accurately
  show the lineage of outlets to their source phase.

o Updated output of `viewLog` CLI command to include a DateTime column. (We
  were trying to keep the width minimized, but yeah, who doesn't want to see
  the date and time?)

o Improved handling of `setProfile|setMy` command errors.

o Fixed a bug in SNMP which did not allow -1 data entry to disable a power
  object setpoint.

o Fixed a bug in SNMP where setpoints could fail to change from normal to
  disabled when setpoint settings were cleared.

o Fixed a bug with setpoint validation which could allow certain illogical
  scenarios to validate.


--------------------------------------------------------------------------------
Updates and Fixes in 2.2.1

o Fixed bug in web Network page which could erase IP settings when enabling
  SNMP for the first time.

o Fixed bug which prevent outlet labels from being editable in the web UI in
  certain specific configurations.

o Fixed bug with CLI command `getLog` which did not list all attributes as
  expected.

o Removed getStartupLog from CLI help which mistakenly listed it as a command.

o NOTE: IPv6 configuration is deprecated. Not all services are capable of
  running on IPv6, so IPv6 configuration will be removed.


--------------------------------------------------------------------------------
Updates and Fixes in 2.2.0

o Updates key_exchange for SSL/TLS to SHA256.

o Adds the ability to use Private Signed Certificates for HTTPS.

o Some CLI commands for HTTP and HTTPS have been changed relative to how HTTP
  and/or HTTPS are enabled. The "port" alias has been reassigned to the https
  port (rather than the http port) to favor the short commands being used for
  https settings.


--------------------------------------------------------------------------------
Updates and Fixes in 2.1.4

o Includes updates to aid in Marway's manufacturing. No user-feature changes.


--------------------------------------------------------------------------------
Updates and Fixes in 2.1.3

o Includes updates to aid in Marway's manufacturing. No user-feature changes.


--------------------------------------------------------------------------------
Updates and Fixes in 2.1.2

o Fixed bug which could cause FTP to start even when the Enabled setting was
  set to false.

o Fixed bug which could prevent T/H sensors from being read.


--------------------------------------------------------------------------------
Updates and Fixes in 2.1.1

o Fixed bug which may create two false Alarm listings.

o Fixed bug which could limit the maximum value of a voltage alarm to the
  maximum inlet rating (but which should have allowed a greater value).

o Fixed bug which could cause errors in the display of CLI command `getPhases`.

o Fixed bug which could prevent setpoint alarm events from being logged.


--------------------------------------------------------------------------------
Updates and Fixes in 2.1.0

o  3-phase Wye units with integrated power monitoring will now show Total power
   values for current, watts, voltamps, and voltamps reactive for inlet power.

o  Telnet may now be configured to run on a user-defined port.

o  Telnet may now be disabled or enabled to run.

o  SSH may now be configured to run on a user-defined port.

o  SSH may now be disabled or enabled to run.

o  Temperature and humidity data is now available on the LED display. (Data is
   not yet available on SNMP, and does not yet have setpoint management.)

o  Prior to 2.1.x, any user allowed to use Telnet/SSH was automatically given
   all user privileges. As of 2.1.0, privileges may be individually assigned
   for users with access to Telnet/SSH.

o  Logging of user actions is now more precise in showing who and through which
   protocol the action was performed. (Prior to 2.1.0, actions performed via
   SSH could not log the exact user name.)

o  The RESTful API includes new commands to retreive the setpoint status of
   phase objects.
      - GET /phases/1/setpoint_status_amps
      - GET /phases/1/setpoint_status_volts

o  The alert acknowledgement web page is now better formatted for mobile
   devices.

o  Most web interface buttons have been changed from images to HTML/CSS which
   provides better UI interactivity, and reduces demands on the PDU processor
   when serving HTTPS by eliminating enctyption of images. As a result, HTTPS
   should feel a little more responsive.

o  A number of content improvements to built-in help files, and field tooltips.



================================================================================
Known Issues and Limitations
================================================================================

o  You may get an error trying to log into SSH like "No Matching MAC found"

   When trying to connect via SSH, if you see an error message similar to this,
   you may have to manually specify a Message Authentication Code (MAC) for
   the connection. Recent OSes may not support the legacy MACs of the RCM OS.
   Try the following -m option in your connection string:

   ssh root@x.x.x.x -m hmac-md5

   If you get another error indicating hmac-md5 is not available, you can do a
   web search for discussions of restoring legacy MACs on your particular OS.

   However, rather than rely on modifications to the system-wide ssh config,
   which your network admninistrator may not appreciate, you can be more
   specific to the user and RCM device as possible.

   On most *nix systems, edit the file ~/.ssh/config for the specific user
   who will be using ssh (create the folder and file if needed), Edit the
   config file to include the following:

   01  Host x.x.x.x           # replace with RCM IP
   02    Ciphers aes128-cbc   # or aes192-cbc, or aes256-cbc
   03    MACs hmac-md5        # only option RCM has

   Where:   In line 01, specify the IP address of a specific the RCM PDU.
            In line 02, specify the exact cipher you want to use. There are
               a few options to choose from.
            In line 03, specify the exact MAC you want to use. RCM's OS offers
               only the one MD5 option.

   If you have multiple RCM devices to connect to, you can list multiple IP
   addresses separated by a space, or repeat the set of lines for each RCM
   IP address you'll be using.

   Refer to https://www.ssh.com/ssh/config/ for more information.

o  When an outlet switch is changed via the web, serial, telnet, ssh, or REST
   interfaces the mPowerSwitchStatusChange trap correctly reports the new
   state of the switch. However, when the outlet switch is changed using an
   SNMP SET, the mPowerSwitchStatusChange trap does not report the switch
   state correctly. Instead of reporting the new value, it repoorts the
   previous value. Unfortunately, as of this writing (2023-12-06), this
   cannot be corrected.

   As a workaround, as of 2.5.5, an outlet state change invoked by SNMP SET
   emits a mChassisEventFirmwareConfigChange trap in addition to the standard
   mPowerSwitchStatusChange trap. The description in mChassisEventFirmwareConfigChange
   will be something like "Power Outlet 1 was set to OFF from SNMP (the preceding
   mPowerSwitchStatusChange states the switch status incorrectly)" where OFF is
   the correct new state of the outlet switch. The second trap is NOT sent when
   the switch is changed by any of the other user interfaces.

o  When updating setpoints for three-phase wye inlets via SNMP, each setpoint will
   have to be updated individually (to the same values for each phase). The web
   and CLI interfaces automatically handle this, but SNMP cannot.

o  The SNMP agent occasionally does not register all outlets. Rebooting the unit
   will typically solve it.

o  The SNMP agent does not support sysORTable.

o  The SNMP agent does not support NoSuchObject or NoSuchInstance. Instead, a
   value of zero, empty string, or some other value suitable to the data type
   will be used.

o  T/H Probes can have one of two addresses ("1" or "2"). To keep the user
   interfaces clear, it is best to set the address to match the Aux port ID.
   So, set a probe address to 1 and plug that one into Aux 1, etc.

o  Re-adding a user account with the same name after it has been deleted will
   not work without first restarting the software (i.e. Delete user "joe" then
   try to add "joe" back in will not work. Delete, restart, then adding user
   "joe" will work.)

o  In versions prior to 2.5.5, pressing a kaypad button during startup before
   the default power data is displayed would freeze the keypad even after
   startup (button pushes did nothing). This required a power cycle to correct.
   As of 2.5.5, button pushes no longer freeze the keypad, but pressing one
   of the menu buttons will delay the auto scroll. If that happens, use the
   menu buttons to navigate to AUTO SCROL and press the Device > (next) button
   to start the default auto scroll.



================================================================================
Marway RCM Files :: /Logs
================================================================================

--------------------------------------------------------------------------------
Exported Log Files

The internal RCM Event Log can be exported to the /Logs folder. Logs cannot be
imported. Subsequent exports will overwrite existing files. Be sure to copy the
file after it is exported.

The file name of an exported log file follows the format of:

    rcm-n.n.n.n.log

where n.n.n.n is the IPv4 address of the product.


--------------------------------------------------------------------------------
Log File Format

The format is a text file using tab delimited fields, CR/LF line endings, and
basic 7-bit ASCII characters. The first line of the file is a header of field
names in this order:

- DateTime
- Severity
- PDU IP
- PDU Location
- Category
- Message
- PDU Model
- PDU Version

Refer to the Users's Guide for details about each field type.


================================================================================
Marway RCM Files :: /Settings
================================================================================

--------------------------------------------------------------------------------
/Settings and File Exports

The /Settings directory is where EXPORTED settings from the RCM product
will be saved. If settings are exported twice, the second set of files
will overwrite the first set. So, remove or copy files after they have
been exported.

Possible exported files (depending on product features):
- EnvironmentSettings.txt
- LogSettings_Exported.txt
- NetworkSettings_Exported.txt
- NotificationSettings_Exported.txt
- PowerSettings_Exported.txt
- SnmpUsmSettings_Exported.txt
- SystemSettings_Exported.txt
- UserSettings_Exported.txt

Exported files include meta data as comments identifying details about the
product from which the export was created.

See the information about the ExportKey.txt file in the /System folder notes.


--------------------------------------------------------------------------------
/Settings and File Imports

The /Settings directory is also where files can be placed to be IMPORTED.

Importing files is a way to propagate settings across multiple units.
Files can be crafted by hand, but a better method is to set up one product
with the desired settings, export those settings, then use those files
as is, or with modifications, to import into other products.

IF YOU ARE MODIFYING SETTINGS FILES, IT IS YOUR RESPONSIBILITY TO MAKE SURE
THEY ARE FORMATTED CORRECTLY, AND CONTAIN VALID CONFIGURATION DATA. INCORRECTLY
FORMATTED FILES MAY RESULT IN SOFTWARE FAILURE WHICH REQUIRES SENDING THE UNIT
BACK TO THE MARWAY FACTORY FOR REPAIR.

Refer to the User's Guide for more details about file formats and options, and
the role of the /System/ExportKey.txt file.

Possible importable files (depending on product features):
- EnvironmentSettings.txt
- LogSettings.txt
- NetworkSettings.txt
- NotificationSettings.txt
- PowerSettings.txt
- SnmpUsmSettings.txt
- SystemSettings.txt
- UserSettings.txt

Once imported, the names will be changed to include an "_Imported" suffix to
prevent them from being imported again.


--------------------------------------------------------------------------------
General Rules for Importing Files

o  Refer to the Owner's Guide for more complete information.

o  As soon as you complete uploading of the settings files, the product should
   be restarted. If any user changes settings via the web or CLI before the
   product is restarted, their new settings values will be replaced.

o  You may add // or # style comments for your own benefit in master copies
   stored as backups or in version control systems. Comments are not destroyed
   by the import process, but they are not imported or preserved in the product.
   An export of those settings at a later time will not include the original
   comments.

o  Any valid property which does not have a valid value, will be reverted to the
   factory default for that property. Refer to the User's Guide for details on
   valid settings for each setting property.

o  Invalid settings may disable login via web and CLI. This may require
   using the startup Serial Dialog to reset the root user password to gain
   access to the product. To create a new login password and salt, see the CLI
   command `makeLoginPswd` using the serial, Telnet, or SSH interface.



================================================================================
Marway RCM Files :: /System
================================================================================

--------------------------------------------------------------------------------
ExportKey.txt File

This file is created whenever the product's settings are exported. The file is
an encryption key used to encrypt sensitive fields in the export data. The file
is needed to re-import the data. Refer to the Import / Export topics in the
User's Guide for more details.



================================================================================
Marway RCM Files :: /Web
================================================================================

Being a part of the product's file system, these files are technically editable.
HOWEVER, they're not intended to be end-user edited.

If ever needed, these files can be restored to their factory state using the
CLI command `webRestore` via Telnet or SSH.


###

